﻿// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'

Shader "Unlit/ProjectileTrail"
{
	Properties
	{
		_RepeatCount("Repeat Count", float) = 5
		_Spacing("Spacing", float) = 0.5
		_Speed("Speed", float) = 0
		_DotColor("DotColor",Color) = (1,1,1,1)
	}
		SubShader
	{
		Tags{ "RenderType" = "Transparent" "Queue" = "Transparent" }
		LOD 100

		Blend SrcAlpha OneMinusSrcAlpha
		ZWrite Off

		Pass
	{
		CGPROGRAM
		#pragma vertex vert
		#pragma fragment frag

		#include "UnityCG.cginc"

		float _RepeatCount;
		float _Spacing;
		float _Speed;
		float4 _DotColor;

		struct appdata
		{
			float4 vertex : POSITION;
			float2 uv : TEXCOORD0;
			fixed4 color : COLOR0;
		};

		struct v2f
		{
			float2 uv : TEXCOORD0;
			float4 vertex : SV_POSITION;
			fixed4 color : COLOR0;
		};

		v2f vert(appdata v)
		{
			v2f o;
			o.vertex = UnityObjectToClipPos(v.vertex);
			o.uv = v.uv;
			o.uv.x = (o.uv.x + _Time*_Speed) * _RepeatCount * (1.0f + _Spacing);
			o.color = _DotColor;

			return o;
		}

		fixed4 frag(v2f i) : SV_Target
		{
			i.uv.x = fmod(i.uv.x, 1.0f + _Spacing);
			fixed4 color = i.color;
			color.a *= saturate((0.99f -i.uv.x) * 100.0f);
			return color;
		}
			ENDCG
		}
	}
}